﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;
using System.Web;
using Entidades.Sistema.Base;
using Mapping.Sistema.Base;

namespace Modelo.Sistema.Base
{
    public class CatalogoTipoDocumento
    {

        private List<TipoDocumento> ColTipoDocumentos;

        public CatalogoTipoDocumento()
        {
            List<TipoDocumento> tiposdocumentos = (List<TipoDocumento>)HttpContext.Current.Session["ColTipoDocumentos"];
            if (tiposdocumentos == null)
            {
                tiposdocumentos = MappingTipoDocumento.ConsultarTipoDocumento();
                HttpContext.Current.Session["ColTipoDocumentos"] = tiposdocumentos;
            }
            ColTipoDocumentos = tiposdocumentos;
        }

        public ReadOnlyCollection<TipoDocumento> ListarTipoDocumentos()
        {
            return ColTipoDocumentos.AsReadOnly();
        }

        public TipoDocumento BuscarTipoDocumento(string nombre)
        {
            return this.ColTipoDocumentos.Find(oPerm => oPerm.nombre == nombre);
        }

        //public bool AgregarTipoDocumento(TipoDocumento oTipoDocumento)
        //{
        //    ColTipoDocumentos.Add(oTipoDocumento);
        //    return Mapping.Sistema.Base.MappingTipoDocumento.AgregarTipoDocumento(oTipoDocumento);
        //}

        //public void ModificarTipoDocumento(TipoDocumento oTipoDocumento)
        //{
        //    Mapping.Sistema.Base.MappingTipoDocumento.ModificarTipoDocumento(oTipoDocumento);
        //    ColTipoDocumentos.RemoveAll(x => x.nombre == oTipoDocumento.nombre);
        //    ColTipoDocumentos.Add(oTipoDocumento);
        //}

        //public void EliminarTipoDocumento(TipoDocumento oTipoDocumento)
        //{
        //    Mapping.Sistema.base.MappingTipoDocumento.EliminarTipoDocumento(oTipoDocumento);
        //    ColTipoDocumentos.Remove(oTipoDocumento);
        //}

        public bool ValidarExistencia(TipoDocumento oTipoDocumento)
        {
            if (this.ColTipoDocumentos.Count(oForm => oForm.nombre == oTipoDocumento.nombre) == 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }
}
